package com.pcjavanet.collect.mes.dao;

import java.util.List;

import org.springframework.dao.DataAccessException;

import com.pcjavanet.collect.mes.to.ContinuousOriginalData;
import com.pcjavanet.collect.mes.to.DiscreteOriginalData;
import com.pcjavanet.collect.mes.to.ParetoData;
import com.pcjavanet.domain.SPCObject;

/**
 * interface OriginalDataDao.
 * @version 4.0
 * @author kenny_li
 */
public interface OriginalDataDao {
	
	/**
	 * get discrete original data database,include C,U,P and NP chart.
	 * @param monitor -Monitor
	 * @param lastGroupTime -int
	 * @return List<DiscreteOrignData> -discreteOrignDataList
	 * @throws DataAccessException -exception
	 */
	public List<DiscreteOriginalData> getDiscreteOriginalData(SPCObject monitor, int lastGroupTime) throws DataAccessException;
	
	/**
	 * get continuous original data database,include X-Bar,R,I,MR and Cpk/ppk chart.
	 * @param monitor -Monitor
	 * @return List<ContinuousOrignData> -continuousOrignDataList
	 * @throws DataAccessException -exception
	 */
	public List<ContinuousOriginalData> getContinuousOriginalData(SPCObject monitor) throws DataAccessException;
	
	/**
	 * get defect discrete original data database,include C,U,P and NP chart.
	 * @param monitor -Monitor
	 * @param lastGroupTime -int
	 * @param lastDataTime -long
	 * @return List<DiscreteOrignData> -discreteOrignDataList
	 * @throws DataAccessException -exception
	 */
	public List<DiscreteOriginalData> getDefectDiscreteOriginalData(SPCObject monitor, int lastGroupTime, long lastDataTime)	throws DataAccessException;
	
	/**
	 * get defect discrete original data database,include C,U,P and NP chart.
	 * @param monitor -Monitor
	 * @param strDateEnd -String
	 * @param firstDiscreteOrignData -DiscreteOrignData
	 * @return List<DiscreteOrignData> -discreteOrignDataList
	 * @throws DataAccessException -exception
	 */
  
	/**
	 * 
	 * @param monitor
	 * @param lastGroupTime
	 * @return
	 */
	public List<ParetoData> getParetoOriginalData(SPCObject monitor,	int lastGroupTime);

}
